#ifndef ENTITY_H
#define ENTITY_H

#include <QMatrix4x4>

#include "object/paintable.h"

class Object;

class Entity : public Paintable
{
public:
    Entity();
    Entity(Object& rkObject);
    ~Entity();

    const QMatrix4x4& matrix() const;

    void setMatrix(const QMatrix4x4& rkMatrix);

    void setObject(Object& rkObject);

    void paint() const;

protected:
    Entity(const Entity& rkOther);
    Entity& operator = (const Entity& rkOther);

private:
    //------------------------------------------------
    //  Attributes.
    //------------------------------------------------
    Object*    m_pkObject;
    QMatrix4x4 m_kMatrix;
};

#endif // ENTITY_H
